#include "Logger.h"
#include "Timestamp.h"

#include <iostream>

// 获取日志唯一的实例对象
Logger &Logger::instance()
{
    static Logger logger;  // 静态局部变量。第一次调用 instance() 时初始化，之后调用不再重新创建，从而保证了实例的唯一性。
    return logger;
}
// 设置日志级别
void Logger::setlogLevel(int level)
{
    logLevel_ = level;
}
// 写日志 [日志级别] 时间 : 日志msg
void Logger::log(std::string msg)
{
    switch (logLevel_)
    {
    case INFO:
        std::cout << "[INFO]";
        break;
    case ERROR:
        std::cout << "[ERROR]";
        break;
    case FATAL:
        std::cout << "[FATAL]";
        break;
    case DEBUG:
        std::cout << "[DEBUG]";
        break;
    default:
        break;
    }
    // 打印时间和msg
    std::cout << Timestamp::now().tostring() << " : " << msg << std::endl;
}